package com.whminwei.edu.api.dc.dto.fspn.school;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 获取校内实训基地信息响应
 *
 * @author zhangjq
 * @since 2024-05-18
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class DcIntlTrainBaseFspn {

    /**
     * 校内实训基地
     */
    private List<DcIntlTrainBase> intlTrainBaseList;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcTrainRoom {
        /**
         * 实训室编号
         */
        private String no;
        /**
         * 实训室名称
         */
        private String name;
        /**
         * 实训室描述
         */
        private String desc;
    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcEquipment {
        /**
         * 设备名称
         */
        private String name;
        /**
         * 设备规格型号
         */
        private String model;
        /**
         * 设备数量
         */
        private int num;
    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcStation {
        /**
         * 工位名称
         */
        private String name;
        /**
         * 工位用途
         */
        private String purpose;
        /**
         * 工位数量
         */
        private int num;
    }

    @Data
    @NoArgsConstructor
    @Builder
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcIntlTrainBase {
        private String istbId;

        /**
         * 基地编号
         */
        private String baseNo;
        /**
         * 基地名称
         */
        private String baseName;
        /**
         * 成立日期
         */
        private Date buildingDate;
        /**
         * 支持部门
         */
        private String supportDept;
        /**
         * 批准日期
         */
        private Date allowedDate;
        /**
         * 实训室明细
         */
        private List<DcTrainRoom> trainRooms;
        /**
         * 实训基地类别
         */
        private String trainingBaseType;
        /**
         * 建筑面积
         */
        private Double buildingArea;
        /**
         * 仪器设备明细
         */
        private List<DcEquipment> equipments;
        /**
         * 实践教学工位明细
         */
        private List<DcStation> stationList;
        /**
         * 专职管理人员
         */
        private List<String> fullTimePerson;
        /**
         * 兼职管理人员
         */
        private List<String> partTimePerson;
        /**
         * 面向专业
         */
        private List<String> majorIds;

    }
}
